#include <stdio.h>

void rearrangeArray(int arr[], int n) {
    int left = 0;          // 左指针
    int right = n - 1;     // 右指针

    while (left < right) {
        // 左指针向右移动，直到找到正数
        while (arr[left] < 0 && left < right) {
            left++;
        }

        // 右指针向左移动，直到找到负数
        while (arr[right] > 0 && left < right) {
            right--;
        }

        // 交换正数和负数
        if (left < right) {
            int temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
        }
    }
}

int main() {
    int arr[] = {-1, 2, 3, -4, -5, 6, -7};
    int n = sizeof(arr) / sizeof(arr[0]);

    printf("Original Array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    rearrangeArray(arr, n);

    printf("\nRearranged Array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}